GtkSearchEngine: Be more robust in cancellation cases
authorMatthias Clasen <mclasen@redhat.com>
Wed, 22 Jul 2015 00:40:46 +0000 (20:40 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 22 Jul 2015 00:40:46 +0000 (20:40 -0400)
When the search is cancelled, we may end up with a tracker
dbus reply coming in after the GtkSearchEngine object is
already gone, and bad things happen. Prevent this by
using g_signal_connect_object instead of g_signal_connect.

gtk/gtksearchengine.c

index 8a92a220c17ac64fb89706112d27ff1eb66c66c8..f11ce732645f58ed07d2f5237de5aa991b8331f4 100644 (file)
@@ -350,9 +350,9 @@ static void
 connect_engine_signals (GtkSearchEngine *engine,
                         gpointer         data)
 {
-  g_signal_connect (engine, "hits-added", G_CALLBACK (hits_added), data);
-  g_signal_connect (engine, "finished", G_CALLBACK (finished), data);
-  g_signal_connect (engine, "error", G_CALLBACK (error), data);
+  g_signal_connect_object (engine, "hits-added", G_CALLBACK (hits_added), data, 0);
+  g_signal_connect_object (engine, "finished", G_CALLBACK (finished), data, 0);
+  g_signal_connect_object (engine, "error", G_CALLBACK (error), data, 0);
 }
 
 GtkSearchEngine *